package cn.controller;

import cn.pojo.User;
import cn.pojo.UserVO;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 复杂数据类型绑定
 */
@RestController
@RequestMapping("complex")
public class ComplexController {

    /**
     * 1 绑定数组
     * <p>
     * 补充链接
     * SpringMVC中解决@ResponseBody注解返回中文乱码问题
     * https://blog.csdn.net/yi234567bo/article/details/121972764
     * <p>
     * produces = "application/json;charset=utf-8"用于解决response返回值中文乱码
     * 这是博客中的其中一种方法
     */
    @RequestMapping(value = "delete/users", produces = "application/json;charset=utf-8")
    public String deleteUsers(Integer[] ids) {
        if (ids != null) {
            for (Integer id : ids) {
                // 使用输出语句模拟已经删除了用户
                System.out.println("删除了id为 " + id + " 的用户！");
            }
        } else {
            System.out.println("ids=null");
        }
        return "绑定数组成功,请查看控制台打印信息.";
        /**
         * 启动项目后,在index页面点击前端进行测试,然后查看控制台输出结果
         */
    }

    // 2 绑定集合
    @RequestMapping(value = "edit/users", produces = "application/json;charset=utf-8")
    public String editUsers(UserVO userList) {
        // 将所有用户数据封装到集合中
        List<User> users = userList.getUsers();
        // 循环输出所有用户信息
        for (User user : users) {
            // 如果接收的用户id不为空，则表示对该用户进行了修改
            if (user.getId() != null) {
                System.out.println("修改了id为" + user.getId() + "的用户名为：" + user.getUsername());
            }
        }
        return "绑定集合测试成功,请查看控制台打印信息.";
        /**
         * 启动项目后,在index页面点击前端进行测试,然后查看控制台输出结果
         */
    }
}
